package LeetCode;

/**
 * @author VX5
 * @Title: MJC
 * @ProjectName DataStructure
 * @Description: TODO
 * @date ${DAT}18:08
 */
public class LeetCode2 {

     public class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
     }

    public ListNode addTwoNumbers(ListNode l1, ListNode l2){
       ListNode pre = new ListNode(0);
       ListNode cur = pre;
       int carry = 0;
       while (l1 != null || l2 != null){
           int a = (l1 == null ? 0 : l1.val);
           int b = (l2 == null ? 0 : l2.val);
           int sum = a + b + carry;
           carry = sum / 10; //进位
           sum = sum % 10;

           cur.next = new ListNode(sum);
           cur = cur.next;
           if (l1 != null){
               l1 = l1.next;
           }
           if (l2 != null){
               l2 = l2.next;
           }
       }
        if(carry > 0){//如果最高位相加后还有进位的话
            cur.next = new ListNode(carry);
            cur = cur.next;
        }
       return pre.next;
    }
}
